/**
 *	@file	album_sub.h
 *	@brief	フォトアルバム　サブルーチン群
 *	@author	Miyuki Iwasawa
 *	@date	08.05.28
 */

#ifndef __H_ALBUM_SUB_H__
#define __H_ALBUM_SUB_H__

extern const u8 AlbumLayoutTable_Pos2Idx[];
extern const u8 AlbumLayoutTable_Idx2Pos[];

#define Vpos2Didx(pos) (AlbumLayoutTable_Pos2Idx[pos])
#define Didx2Vpos(pos) (AlbumLayoutTable_Idx2Pos[pos])
#define GetTarget(pos,page) (Vpos2Didx(pos)+(page*PAGE_DATA_NUM))

inline u8 AlbumSub_GetCursorPos(u8 cur_x,u8 cur_y)
{
	if(cur_y >= PAGE_DNUM_Y){
		return PAGE_DATA_NUM;
	}
	return cur_x+(cur_y*PAGE_DNUM_X);
}

extern void AlbumResInit(ALBUM_WORK* wk);
extern void AlbumResRelease(ALBUM_WORK* wk);

/**
 *	@brief	写真リスト初期化
 */
extern void AlbumSub_PictureListInit(ALBUM_WORK* wk);
/**
 *	@brief	写真リストをセーブデータに反映
 */
extern void AlbumSub_PictureListSave(ALBUM_WORK* wk);
/**
 *	@brief	写真リストのデータをスワップ
 */
extern void AlbumSub_PictureListSwap(ALBUM_WORK* wk,u8 idx0,u8 idx1);
/*
 *	@brief	写真リストのデータを削除
 */
extern void AlbumSub_PictureListDelete(ALBUM_WORK* wk,u8 idx);


/**
 *	@brief	画面初期書き込み
 */
extern void AlbumSub_InitialDraw(ALBUM_WORK* wk);

/**
 *	@brief	入力取得　写真選択
 */
extern int AlbumSub_InputSelect(ALBUM_WORK* wk);

/*
 *	@brief	入力取得　写真移動
 */
extern int AlbumSub_InputMove(ALBUM_WORK* wk);

/**
 *	@brief	写真入れ替えエフェクト
 */
extern BOOL AlbumMoveEffect(ALBUM_WORK* wk);

/**
 *	@brief	ページめくり　一つ前へ
 */
extern BOOL AlbumPageUp(ALBUM_WORK* wk);

/**
 *	@brief	ページめくり　一つ後ろへ
 */
extern BOOL AlbumPageDown(ALBUM_WORK* wk);

/**
 *	@brief	リスト選択
 */
extern int AlbumListSelect(ALBUM_WORK* wk);

/**
 *	@brief	写真消去選択シーケンス
 */
extern int AlbumPictureDel(ALBUM_WORK* wk);

#endif	//__H_ALBUM_SUB_H__
